/* 
 * File:   Carteira.cpp
 * Author: thiagojesus
 * 
 * Created on May 23, 2012, 8:39 AM
 */

#include <fstream>
#include <iostream>
#include "Carteira.h"
#include "Agenda.h"
#include "Lista.cpp"

Carteira::Carteira() {
    numCarteira = 0;
    itemcart = NULL;
}

Carteira::Carteira(const Carteira& orig) {
    numCarteira = orig.numCarteira;
}

Carteira::~Carteira() {
    
}

ItemCarteira* Carteira::atualizarCarteira(Vacina::Listavac *vac){
    Vacina *v;
    int d,m,a;
    std::string nome;
    std::cout<<"Dia da aplicacao: dd mm aaaa";
    std::cin>>d;
    std::cin>>m;
    std::cin>>a;
    std::cout<<"Vacina Aplicada";
    getline(std::cin,nome);
    getline(std::cin,nome);
    v = Vacina::pesquisar(vac,nome);
    if(v!=NULL){
        ItemCarteira *ic = new ItemCarteira(d,m,a,v);
        return ic;
    }
    
}


void Carteira::setNumCarteira(int numCarteira) {
    this->numCarteira = numCarteira;
}

int Carteira::getNumCarteira() const {
    return numCarteira;
}

Carteira& Carteira::operator =(const Carteira& a){
    this->numCarteira = a.numCarteira;
    this->itemcart = a.itemcart;
    
}

void Carteira::salvar(){
    std::fstream myfile;
    myfile.open("carteira.txt",std::ios::out|std::ios::binary);
    if(!myfile){
        std::cout<<"ERRO!";
    }else{
        myfile<<this->nitens<<"\n";
        myfile.close();
        ItemCarteira::salvarlistacart(nitens, &itemcart);
        std::cout<<"arquivo criado com sucesso\n";
        myfile.close();
        
    }
}

void Carteira::atualizapacote(Vacina::Listavac* vac, int d, int m, int a, Carteira *c){
    Vacina *aux;
    aux = *vac;
    while(aux!=NULL){
        ItemCarteira *ic = new ItemCarteira(d,m,a,aux);
        cadastrar(&(c->itemcart),ic);
        c->nitens++;
        aux = aux->prox;
    }
}

long Carteira::carregar(long parou){
    std::fstream myfile;
    myfile.open("carteira.txt",std::ios::in);
    if(!myfile){
        std::cout<<"ERRO!";
    }else{
        myfile>>this->nitens;
        myfile.close();
        parou = ItemCarteira::carregarListacart((&this->itemcart),parou,this->nitens);
        std::cout<<"arquivo criado com sucesso\n";
        myfile.close();
        return parou;
        
    }
}

ItemCarteira::listaItemCar Carteira::getItemcart() const {
    return itemcart;
}


